"use strict";

const util = require('util');


function Person(name){
	this.name = name
	this.sex = 'female'
}
Person.prototype.output = function() {
	console.log(this.name+" "+this.sex);
};
function God(name){
	Person.call(this,name);
	this.shit = 'gold';
}

// util.inherits(God,Person);
// God.prototype = new Person();
God.prototype = Object.create(Person.prototype);//跟上面的类似，只是多了一个中间变量
God.prototype.constructor = God;//默认情况下God.prototype.constructor指向God，但是上面prototype变了，所以这里要重置

new Person().output();

new God("i am god").output();

//最简单的做法：
//1. 使用Super的构造函数调用call(this,xxx);
//2. 使用util.inherits(sub,super);
//
//标准js的做法：
//1. 一样需要调用call
//2. Sub.prototye = Object.create(Super.prototype)
//3. Sub.prototype.constructor = Sub;